Note: These questions and answers are all technical in nature. Please direct non-technical questions (price, availability) to our Sales Department at sales@pocketsoft.com.
PATCH searches in three places for files to
update: the update directory specified on the command line (this is
the current directory in the absence of the update directory
parameter); subdirectories of the update directory; and directories
listed on the PATH
environment variable. If
PATCH finds a new version of a file anywhere in one of
these three places, it will not apply the patch for that file.
Usually this problem arises when a new version of a file exists on the
path. Searching on the path can be disabled with the /NOP
switch on the PATCH command line, while searching in
subdirectories of the update directory can be disabled with the
/NOS switch. Note that this problem only happens when
testing patches, because end-users are not going to have new versions
on their systems.
Find out the size of the largest single file in the system for which they're building a patch. We need RAM according to the following formula in order to build patches quickly:
( 2 * (size of largest single file in system) ) + 2 MB
If we have less RAM than this, we will build the patch, but as we have to go to a swapfile, build times will increase substantially._RTPatchApply
.
The RTPatchApply
function, like all Windows
API functions, must be declared as extern "C"
so that it
isn't mangled by the C++ compiler. If you look at the
WINDOWS.H
file, you will notice that the whole thing is
surrounded by the construct:
extern "C" { }
RTPatchApply
is:
extern "C" { RTPatchApply (parameter list) }
If you are using 2.11 or later, use the /s switch on the OLDDIR specification, and the /f switch on the NEWDIR specification. If you are using version < 2.11, you must use the ADDTODIR or ADDWITHFILE commands within a file block in the command file for each file to be added to subdirectories.
This is a catch-all category that usually involves something tricky like history patching, updating multiple systems, serialization information, and so forth. Fortunately, we can almost always reproduce a certain behavior of either the build or the apply program by setting up a testcase with the same directory structure as yours, but with plain text files. This is because PATCHBLD and PATCH errors almost never arise from problems with specific files, but with the way files are organized in a directory structure. Proceed as follows: prepare an exact description of what is happening, and what you expect to happen instead. Provide us with your command file(s), and and output of a "DIR /S" for both the old directory and the new directory. With this information, we should be able to reproduce the problem. (Note that you rarely need to duplicate all the files in a system to reproduce the problem; one or two at the center of the problem should suffice).
.RTPatch® Support Staff
©Copyright 1995, 1996, 1997, Pocket Soft, Inc. All rights reserved.